package p.ithorns.example.statemachine.core;

/**
 * Action
 * 变换
 *
 * @author ithorns
 * @version 1.0.0
 * @date 2022/11/13 11:43
 */
public interface Action {

    /**
     * 获取事件码
     * 等于状态码
     *
     * @return 事件码
     * @see EventEnum
     */
    EventEnum getEventType();

    /**
     * 根据事件转换状态
     *
     * @param event -事件
     * @return 转换后的状态
     */
    State execute(Event event);

}